package buildinpackage

import (
	"fmt"
	"regexp"
	"strconv"
)

func UseMatchInReg() {
	pat := "[0-9]+.[0-9]+" //正则表达式
	searchIn := "John: 2578.34 William: 4567.23 Steve: 5632.18"

	//定一个方法用于转化和格式化匹配到的内容
	f := func(s string) string {
		//将表示浮点数的字符串转化成float32类型
		v, _ := strconv.ParseFloat(s, 32)
		//将结果v * 2并格式化成 flot32的字符串格式
		return strconv.FormatFloat(v*2, 'f', 2, 32)
	}

	if ok, _ := regexp.Match(pat, []byte(searchIn)); ok {
		fmt.Println("Math Found!")
	}
	//预编译正则表达对象
	re, _ := regexp.Compile(pat)

	//将输入内容中匹配正则表达式的内容进行替换
	str := re.ReplaceAllString(searchIn, "##.#")
	fmt.Println(str)
	str2 := re.ReplaceAllStringFunc(searchIn, f)

	fmt.Println(str2)
}
